Skip to content

docs(memos): sync template standards updates#349

Merged
mberlofa merged 4 commits into
mainfrom
docs/memos-template-standards-sync
Jul 6, 2026
Merged

docs(memos): sync template standards updates#349
mberlofa merged 4 commits into
mainfrom
docs/memos-template-standards-sync

Conversation

@mberlofa

@mberlofa mberlofa commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Summary

  • document optional ingressClassName rendering and networkPolicy.extraEgress behavior for Memos
  • expose Memos NetworkPolicy controls and empty ingress class option in the playground registry
  • register Memos in the playground site-sync map

Validation

  • make site-sync-check CHART=memos
  • npm run lint
  • npm run format:check
  • npm run build

Chart PR: helmforgedev/charts#671
Issue: helmforgedev/charts#633

Summary by CodeRabbit

  • New Features
    • Updated the memos chart playground with an expanded “Ingress Class” selector that includes an empty option.
    • Added NetworkPolicy controls to the memos playground (shown when enabled), including “Egress Isolation” and HTTPS IPv4/IPv6 CIDR fields (defaults: disabled, 0.0.0.0/0, ::/0).
    • Included memos in site-synced playground chart filtering.
  • Documentation
    • Expanded the memos configuration reference for Ingress and NetworkPolicy, including behavior when Ingress Class is empty and how egress isolation affects outbound DNS/HTTPS.

@coderabbitai

coderabbitai Bot commented Jul 3, 2026

Copy link
Copy Markdown

Review Change Stack

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Updates the memos playground config with ingress and network policy options, expands the memos chart documentation to describe those settings, and registers memos in the playground site-sync mapping.

Changes

Memos playground and docs

Layer / File(s) Summary
Ingress class option
src/data/playground-configs.ts
Adds an empty option to the memos Ingress Class select alongside traefik and nginx.
Network policy fields and docs
src/data/playground-configs.ts, src/pages/docs/charts/memos.mdx
Adds a networkPolicy.enabled-gated Network Policy section with egress isolation and HTTPS CIDR fields, and expands the docs to cover ingress, network policy, and the production example.
Playground registration
src/pages/playground.astro
Adds memos to the site-sync playground config lookup used for chart filtering and selection.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

  • helmforgedev/site#322: Also updates src/pages/playground.astro’s site-sync mapping to register a chart slug for playground filtering.
  • helmforgedev/site#330: Also extends the same site-sync registry in src/pages/playground.astro with another chart entry.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title is concise and relevant to the Memos docs and playground sync changes.
Description check ✅ Passed The description covers the required summary, validation, and issue reference, though it doesn't use the exact Quality Gates checkbox format.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch docs/memos-template-standards-sync

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
src/data/playground-configs.ts (1)

8140-8146: 🗄️ Data Integrity & Integration | 🔵 Trivial | ⚡ Quick win

Memos ingress class options lack the empty option now documented in memos.mdx.

The updated memos.mdx documents setting ingress.ingressClassName: "" to omit spec.ingressClassName, mirroring the pattern already used for apache and now olivetin (options: ['', ...]). The memos entry here still only offers ['traefik', 'nginx'], so playground users can't exercise the documented behavior.

♻️ Proposed fix
         {
           label: 'Ingress Class',
           key: 'ingress.ingressClassName',
           type: 'select',
           default: 'traefik',
-          options: ['traefik', 'nginx'],
+          options: ['', 'traefik', 'nginx'],
           description: 'Ingress controller class',
         },
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/data/playground-configs.ts` around lines 8140 - 8146, The Memos ingress
class selector is missing the empty option that is now documented, so update the
playground config entry for ingress.ingressClassName to include an empty choice
alongside the existing traefik and nginx values. Use the existing pattern from
the apache and olivetin config entries in playground-configs.ts, keeping the
same label, key, and description while extending the options list so users can
select "" and omit spec.ingressClassName.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@src/data/playground-configs.ts`:
- Around line 8140-8146: The Memos ingress class selector is missing the empty
option that is now documented, so update the playground config entry for
ingress.ingressClassName to include an empty choice alongside the existing
traefik and nginx values. Use the existing pattern from the apache and olivetin
config entries in playground-configs.ts, keeping the same label, key, and
description while extending the options list so users can select "" and omit
spec.ingressClassName.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 7368d274-6320-4af0-abbf-bec0881de11f

📥 Commits

Reviewing files that changed from the base of the PR and between 365449a and a37f814.

📒 Files selected for processing (3)
  • src/data/playground-configs.ts
  • src/pages/docs/charts/memos.mdx
  • src/pages/playground.astro

@mberlofa

mberlofa commented Jul 5, 2026

Copy link
Copy Markdown
Contributor Author

Synced the Memos NetworkPolicy docs with helmforgedev/charts#671.

What changed:

  • Documented networkPolicy.egressIsolation for baseline DNS/HTTPS egress isolation without custom rules.
  • Documented networkPolicy.dnsEgress and its default kube-system / k8s-app: kube-dns selector.
  • Kept networkPolicy.extraEgress documented as also enabling isolation while appending custom rules.

Validation:

  • npm run format:check passed.
  • npm run lint passed.
  • npm run build passed.
  • make release-check REPO=site passed.
  • make attribution-check REPO=site passed.

@mberlofa

mberlofa commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the CodeRabbit review-body feedback.

Changes:

  • Added the empty "" option to the Memos ingress.ingressClassName playground selector, matching the documented behavior for omitting spec.ingressClassName.

Validation:

  • npm run lint passed
  • npm run build passed
  • make site-sync-check CHART=memos passed
  • make release-check REPO=site passed
  • make attribution-check REPO=site passed
  • git diff --check passed

Note: this CodeRabbit item was posted in the review summary/body, not as an active review thread, so there is no thread ID to reply to or resolve.

@mberlofa

mberlofa commented Jul 6, 2026

Copy link
Copy Markdown
Contributor Author

Synced the Memos site docs with the chart update in helmforgedev/charts#671.

Changes:

  • Documented
    etworkPolicy.httpsEgress alongside dnsEgress and �xtraEgress.
  • Added Memos playground controls for NetworkPolicy egress isolation and HTTPS IPv4/IPv6 CIDRs.

Validation:

pm run format:check passed.

pm run lint passed.

pm run build passed.

  • make site-sync-check CHART=memos passed with the expected required-update guidance reviewed.
  • make release-check REPO=site passed.
  • make attribution-check REPO=site passed.
  • git diff --check passed.

mberlofa added a commit to helmforgedev/charts that referenced this pull request Jul 6, 2026
## Summary
- align memos template standards: immutable selector labels, guarded
ingressClassName, centralized validate helper, and numbered NOTES
- add networkPolicy.extraEgress with built-in DNS and HTTPS baseline
egress when egress isolation is enabled
- keep Memos-specific StatefulSet/database validation behavior while
adding selector-label override coverage

## Validation
- helm unittest charts/memos: 20 tests passed
- helm lint --strict charts/memos
- make template-standards-check CHART=memos
- make standards-check CHART=memos
- make standards-guard CHART=memos
- node scripts/charts/validate-chart.js --chart memos --no-k3d: all
local layers passed except local Windows remote kubeconform schema
download from raw.githubusercontent.com
- strict kubeconform rerun with local official schemas: default plus all
ci/*.yaml passed, Skipped: 0
- k3d behavioral validation on k3d-helmforge-tests-wsl: default plus all
ci/*.yaml passed

Issue: #633
Site PR: helmforgedev/site#349

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Added NetworkPolicy egress isolation with built-in DNS/HTTPS
allowances and support for appending extra egress rules.
* Improved installation notes with clearer access, workload,
configuration, persistence/database details, exposure status, and
troubleshooting.
* **Bug Fixes**
  * Omit `ingressClassName` in rendered Ingress when left empty.
  * Align StatefulSet pod labels with the selector set.
* Strengthened chart validation for invalid replica/database/persistence
and restricted selector label overrides.
* **Documentation**
* Expanded Memos chart README networking defaults and egress behavior
guidance.
* **Tests**
* Added/updated tests for NetworkPolicy egress rendering, baseline
customization, rule ordering, ingress omission, and validation failures.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: MergeCheck <mergecheck@example.invalid>
@mberlofa mberlofa force-pushed the docs/memos-template-standards-sync branch from 8852b63 to 3611ee2 Compare July 6, 2026 13:53

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
src/data/playground-configs.ts (1)

8424-8451: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider exposing DNS/extra-egress controls to match documented behavior.

Per the PR comments, the docs describe networkPolicy.dnsEgress (with its kube-system/k8s-app: kube-dns default selector) and networkPolicy.extraEgress (append custom rules while isolation is enabled) alongside egressIsolation. This section only exposes egressIsolation and the HTTPS CIDR fields, unlike the langflow and kubernetes-mcp-server configs in this same file, which expose analogous dnsEgressPeers[...] and extraEgress[...] fields for their NetworkPolicy sections. If parity with the documentation is desired in the playground, consider adding fields for these two keys.

♻️ Optional fields to add for parity with docs
     {
       name: 'Network Policy',
       collapsible: true,
       gateField: 'networkPolicy.enabled',
       fields: [
         {
           label: 'Egress Isolation',
           key: 'networkPolicy.egressIsolation',
           type: 'toggle',
           default: 'false',
           description: 'Render baseline DNS and HTTPS egress rules',
         },
         {
           label: 'HTTPS IPv4 CIDR',
           key: 'networkPolicy.httpsEgress[0].ipBlock.cidr',
           type: 'text',
           default: '0.0.0.0/0',
           description: 'IPv4 HTTPS egress destination',
         },
         {
           label: 'HTTPS IPv6 CIDR',
           key: 'networkPolicy.httpsEgress[1].ipBlock.cidr',
           type: 'text',
           default: '::/0',
           description: 'IPv6 HTTPS egress destination',
         },
+        {
+          label: 'Extra Egress CIDR',
+          key: 'networkPolicy.extraEgress[0].to[0].ipBlock.cidr',
+          type: 'text',
+          default: '',
+          description: 'Optional additional egress destination',
+        },
       ],
     },
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/data/playground-configs.ts` around lines 8424 - 8451, The Network Policy
playground section exposes only egressIsolation and HTTPS CIDR fields, so it is
missing the documented dnsEgress and extraEgress controls. Update the Network
Policy block in playground-configs by adding fields for networkPolicy.dnsEgress
and networkPolicy.extraEgress, following the same pattern used by the langflow
and kubernetes-mcp-server NetworkPolicy sections. Make sure the DNS field
reflects the kube-system / k8s-app: kube-dns default selector and the
extra-egress field lets users append custom rules while isolation is enabled.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@src/data/playground-configs.ts`:
- Around line 8424-8451: The Network Policy playground section exposes only
egressIsolation and HTTPS CIDR fields, so it is missing the documented dnsEgress
and extraEgress controls. Update the Network Policy block in playground-configs
by adding fields for networkPolicy.dnsEgress and networkPolicy.extraEgress,
following the same pattern used by the langflow and kubernetes-mcp-server
NetworkPolicy sections. Make sure the DNS field reflects the kube-system /
k8s-app: kube-dns default selector and the extra-egress field lets users append
custom rules while isolation is enabled.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro Plus

Run ID: 0878ba23-c53d-443b-9895-ea888d190f68

📥 Commits

Reviewing files that changed from the base of the PR and between 8852b63 and 3611ee2.

📒 Files selected for processing (3)
  • src/data/playground-configs.ts
  • src/pages/docs/charts/memos.mdx
  • src/pages/playground.astro
✅ Files skipped from review due to trivial changes (1)
  • src/pages/docs/charts/memos.mdx
🚧 Files skipped from review as they are similar to previous changes (1)
  • src/pages/playground.astro

@mberlofa mberlofa merged commit 15784b6 into main Jul 6, 2026
6 checks passed
@mberlofa mberlofa deleted the docs/memos-template-standards-sync branch July 6, 2026 14:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant